# 1、输入数字n，输出n天前的日期（time或者datatime模块）

# import datetime
# import time
# nums = int(input("你要回到多少天前："))
# cls = datetime.date.fromtimestamp(time.time()-24*60*60*nums)
# print(cls)
#


# 2、输出指定文件夹下有哪些文件或文件夹（实现ls命令， os）

# import os
# directory = input("输入文件夹：")
# a =os.listdir(directory)
# for i in a:
#     print(i)
#


# 3、列表去重，并且从小到大排序

# a = [1, 2, 2, 5, 3, 4, 7, 6, 9, 8]
# b = []
# for i in a:
#     if i not in b:
#         b.append(i)
# b.sort()
# print(b)


# 4、如何在一个函数内部修改全局变量
#    globals关键字


# 5、如何跨模块共享全局变量
# 在单个程序中跨模块共享信息的规范方法是创建一个特殊模块（通常称为config或cfg）。
# 只需在应用程序的所有模块中导入配置模块；然后该模块可用作全局名称。
# 因为每个模块只有一个实例，所以对模块对象所做的任何更改都会在任何地方反映出来。
# 把所有的全局变量写在一个模块文件里，使用时导入即可


# 6、python的基本数据类型有哪些？
# 整型，浮点型，复数，字符串，布尔，列表，元组，字典，NoneType


# 7、python中生成随机整数（1-10），随机小数（1-10），随机小数（0-1）的方法
# import random
# print(random.randint(1, 10))
# print(random.uniform(1, 10))
# print(random.random())

# 8、python中哪些是可变数据类型，哪些是不可变数据类型
#    不可变数据类型： string ，数值型， tuple
#   可变： 列表，字典，集合等


# 9、a+=1与a=a+1有什么区别
# 对于可变对象，a += 1 直接在原内存地址上操作a = a + 1开辟新的内存操作
# 对于不可变对象，a += 1和a = a + 1都是在新开辟的空间操作


# 10、什么是pep8？说出5点它的标准
#
# 是python的一种编码规范
# 每一级缩进使用4个空格。
# 续行应该与其包裹元素对齐，要么使用圆括号、方括号和花括号内的隐式行连接来垂直对齐，要么使用挂行缩进对齐
# 当使用挂行缩进时，应该考虑到第一行不应该有参数，以及使用缩进以区分自己是续行。
# 导入总是位于文件的顶部，在模块注释和文档字符串之后，在模块的全局变量与常量之前
# 与代码相矛盾的注释比没有注释还糟，当代码更改时，优先更新对应的注释


# 11、给定一个字符串，找出字符串第一个重复的字符
# s = "abdlhlahlh"
# r = ""
# for i in s:
#     r += i
#     if r.count(i) > 1:
#         print(i)
#         break


# 12、简述深拷贝与浅拷贝
# 拷贝第一层数据（地址）
# 递归拷贝所有层数据


# 13、简述python内存机制
# 以引用计数为主，标记清除，分代回收为辅的垃圾回收机制，以及内存池机制


# 14、使用python实现冒泡排序，快速排序
# 冒泡排序

# l = [1, 2, 3, 4, 5]
# def bubble(l):
#     k = len(l)
#     for i in range(len(l) - 1):
#         for j in range(k-1):
#             if l[j] > l[j + 1]:
#                 temp = l[j]
#                 l[j] = l[j + 1]
#                 l[j + 1] = temp
#         k = k-1
# bubble(l)
# print(l)


# 快速排序

# def quick_sort(array, start, end):
#     if start >= end:
#         return
#     mid = array[start]
#     left = start
#     right = end
#     while left < right:
#         while array[right] >= mid and left < right:
#             right -= 1
#         array[left] = array[right]
#         while array[left] < mid and left < right:
#             left += 1
#         array[right] = array[left]
#     array[left] = mid
#     quick_sort(array, start, left-1)
#     quick_sort(array, left+1, end)
#
# l = [1, 4, 5, 7, 3, 9, 8, 1, 2, 1, 3]
#
# quick_sort(l,0,len(l)-1)
# print(l)


# 15、验证一个字符串是否属于回文（从左到右，从右到左都是一样）
# s = input("输入一个字符串:")
# print(s[::-1])
# if s == s[::-1]:
#     print("该字符串是回文串")
# else:
#     print("不是回文串")


# l = [1, 2, 3, 4, 5, 6]
# k = len(l)
# count = 0
# for i in range(len(l) - 1):
#     count = 0
#     for j in range(k - 1):
#         if l[j] > l[j + 1]:
#             count += 1
#             temp = l[j]
#             l[j] = l[j + 1]
#             l[j + 1] = temp
#     k = k - 1
#     if count == 0:
#         break


l = [2, 1, 3]


l[0], l[1] = l[1], l[0]
print(l)
